2.20.1 Overview of Dynamic SDRAM Constraints
- 动态SDRAM约束概述:
- 动态SDRAM约束是指根据SDRAM规范制定的对事务调度器(transaction scheduler)的限制。这些限制的具体值是可编程的,并且会根据使用的特定SDRAM型号的规范而变化。因此,在向uMCTL2发送数据流之前,必须正确地设置这些约束。
- 约束的分类:
段落提到动态SDRAM约束可以细分为三种基本类别:- bank约束(Bank Constraints) :这一约束影响可以调度到特定内存bank的事务。bank是SDRAM内部的一种结构,它允许多个数据存储的操作同时进行。具体的描述可以查看提到的“Dynamic SDRAM Bank Constraints”部分。
- 等级约束(Rank Constraints) :这一约束影响可以调度到特定内存等级(Rank)的事务。SDRAM可以有多个等级,每个等级可能包含多个bank。对于每个等级开启或关闭的事务会受到这个约束的影响。具体内容可以参考“Dynamic SDRAM Rank Constraints”部分。
- 全局约束(Global Constraints) :这一约束影响所有事务调度,不限于特定的bank或等级。全局约束是在所有内存操作和访问中必须遵循的规则。详细信息可以参考“Dynamic SDRAM Global Constraints”部分。
- 读延迟(RL)和写延迟(WL) :
- 读延迟和写延迟是指内存在数据读写操作中需要等待的时钟周期数,各种SDRAM的延迟描述如下:
- DDR2:
- 读延迟(RL) = CL(CAS延迟) + AL(提前延迟)
- 写延迟(WL) = CL - 1 + AL
- DDR3:
- 读延迟(RL) = CL + AL
- 写延迟(WL) = CWL(写CAS延迟) + AL
- DDR4:
- 读延迟(RL)= CL + AL + PL(预充电延迟)
- 写延迟(WL)= CWL + AL + PL
- mDDR:
- 读延迟(RL) = CL
- 写延迟(WL) = 1
- LPDDR2/LPDDR3/LPDDR4:
- 读延迟和写延迟直接在模式寄存器中定义。
- DDR2:
- 读延迟和写延迟是指内存在数据读写操作中需要等待的时钟周期数,各种SDRAM的延迟描述如下:
2.20.7 Preamble and Postamble (DDR4/LPDDR4 Only)
1. 写前导脉冲(Write Preamble)
基本特性
- DDR4支持1个时钟周期(tCK)或2个时钟周期的可编程写前导脉冲
- 2个时钟周期的前导脉冲适用于DDR4-2400及更快的内存
- 仅在1:2频率比模式下使用
配置方法
- 通过MR4[12]选择写前导脉冲
- 需要调整INIT6.mr4寄存器
使用2tCK写前导脉冲的影响
- 设置寄存器
- 将DRAMTMG9.ddr4_wr_preamble设置为1
- CRC和tCCD约束
- 启用CRC(CRCPARCTL1.crc_enable = 1)时:
- tCCD不能为6
- 可用的tCCD值为8、10、12等偶数
- 控制器只发出tCCD = 8, 10, 12等的写命令
- 当同时启用CRC和2tCK前导脉冲时,理论写带宽将限制到50%
- 未启用CRC时,DRAMTMG9.ddr4_wr_preamble不影响功能
- 启用CRC(CRCPARCTL1.crc_enable = 1)时:
- 时序参数调整
- WTR_l增加1:调整DRAMTMG2.wr2rd
- tWTR_s增加1:调整DRAMTMG9.wr2rd_s
- tWR增加1或2(最终值必须为偶数):调整DRAMTMG0.wr2pre
- tRTP增加1:调整所有使用tRTP的寄存器
- CWL必须增加2:调整所有使用CWL的寄存器
- 多等级系统调整
- 针对DRAMTMG2.rd2wr的调整:
- 写前导脉冲为1 tCK:RL + BL/2 + 2 - WL
- 写前导脉冲为2 tCK:RL + BL/2 + 3 - WL
- 调整RANKCTL.diff_rank_wr_gap_msb和RANKCTL.diff_rank_wr_gap
- 计算公式:((N+1)/2),向上取整
- 针对DRAMTMG2.rd2wr的调整:
2. 读前导脉冲(Read Preamble)
基本特性:
- DDR4支持1个或2个时钟周期的可编程读前导脉冲
- 2个时钟周期的前导脉冲适用于DDR2666/DDR3200及更快的内存
- 仅在1:2频率比模式下使用
配置方法:
- 通过MR4[11]选择读前导脉冲
- 需要调整INIT6.mr4寄存器
使用2tCK读前导脉冲的影响:
- 对于多等级系统,调整RANKCTL.diff_rank_rd_gap_msb和RANKCTL.diff_rank_rd_gap
- 计算公式:((N+1)/2),向上取整
关键点解释
- 前导脉冲:在数据传输开始前的额外时钟周期,用于信号稳定和同步
- CRC:循环冗余校验,用于检测数据传输中的错误
- 1:2频率比:控制器工作频率是内存频率的一半
实际意义
- 这些配置确保DDR4内存在高速和复杂的工作模式下能够稳定、可靠地工作
- 通过精确调整时序参数,可以优化内存性能和数据传输质量
本文作者:
ICXNM-ZLin
本文链接: https://talent-tudou.github.io/2024/12/18/DDR/uMCTL2-Dynamic SDRAM Constraints/
版权声明: 本作品采用 CC BY-NC-SA 4.0 进行许可。转载请注明出处!
本文链接: https://talent-tudou.github.io/2024/12/18/DDR/uMCTL2-Dynamic SDRAM Constraints/
版权声明: 本作品采用 CC BY-NC-SA 4.0 进行许可。转载请注明出处!